diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php
index 938c808..61e7aa7 100644
--- a/system/libraries/Cache/Cache.php
+++ b/system/libraries/Cache/Cache.php
@@ -10,22 +10,22 @@
  * @license		http://codeigniter.com/user_guide/license.html
  * @link		http://codeigniter.com
  * @since		Version 2.0
- * @filesource
+ * @filesource	
  */
 
 // ------------------------------------------------------------------------
 
 /**
- * CodeIgniter Caching Class
+ * CodeIgniter Caching Class 
  *
  * @package		CodeIgniter
  * @subpackage	Libraries
  * @category	Core
  * @author		ExpressionEngine Dev Team
- * @link
+ * @link		
  */
 class CI_Cache extends CI_Driver_Library {
-
+	
 	protected $valid_drivers 	= array(
 		'cache_apc', 'cache_file', 'cache_memcached', 'cache_dummy'
 	);
@@ -33,7 +33,7 @@
 	protected $_cache_path		= NULL;		// Path of cache files (if file-based cache)
 	protected $_adapter			= 'dummy';
 	protected $_backup_driver;
-
+	
 	// ------------------------------------------------------------------------
 
 	/**
@@ -52,16 +52,16 @@
 	// ------------------------------------------------------------------------
 
 	/**
-	 * Get
+	 * Get 
 	 *
-	 * Look for a value in the cache. If it exists, return the data
+	 * Look for a value in the cache.  If it exists, return the data 
 	 * if not, return FALSE
 	 *
-	 * @param 	string
+	 * @param 	string	
 	 * @return 	mixed		value that is stored/FALSE on failure
 	 */
 	public function get($id)
-	{
+	{	
 		return $this->{$this->_adapter}->get($id);
 	}
 
@@ -112,7 +112,7 @@
 	 * Cache Info
 	 *
 	 * @param 	string		user/filehits
-	 * @return 	mixed		array on success, false on failure
+	 * @return 	mixed		array on success, false on failure	
 	 */
 	public function cache_info($type = 'user')
 	{
@@ -120,7 +120,7 @@
 	}
 
 	// ------------------------------------------------------------------------
-
+	
 	/**
 	 * Get Cache Metadata
 	 *
@@ -131,7 +131,7 @@
 	{
 		return $this->{$this->_adapter}->get_metadata($id);
 	}
-
+	
 	// ------------------------------------------------------------------------
 
 	/**
@@ -139,11 +139,11 @@
 	 *
 	 * Initialize class properties based on the configuration array.
 	 *
-	 * @param	array
+	 * @param	array 	
 	 * @return 	void
 	 */
 	private function _initialize($config)
-	{
+	{        
 		$default_config = array(
 				'adapter',
 				'memcached'
@@ -207,7 +207,7 @@
 
 		return $obj;
 	}
-
+	
 	// ------------------------------------------------------------------------
 }
 // End Class
